$(document).on('ready', function(e)
{
  /*
   * GUI amigable
   */
  $('#titulo').focus();

  /*
   * Configuración de tinymce
   */
  tinyMCE.init({
    elements: 'contenido, contenido_en',
    height: 350,
    language: 'es',
    mode: 'exact',
    theme: 'advanced',
    plugins: 'table',
    theme_advanced_buttons1: 'bold,italic,underline,|,fontsizeselect,|'
      + ',justifyleft,justifycenter,justifyright,justifyfull,|'
      + ',bullist,numlist,|,link,unlink,|,table,code',
    theme_advanced_buttons2: '',
    theme_advanced_buttons3: '',
    theme_advanced_toolbar_align: 'left',
    theme_advanced_toolbar_location: 'top',
    width: 570
  });

  /*
   * Al seleccionar una nueva imagen
   */
  $('#image_file').on('change', function(e)
  {
    // Mostrar mensaje "cargando"
    Admin.showLoading(true);

    // Asignar evento load al iframe, con "one()" para que no se dispare el evento
    // al cambiar el src del iframe
    $('#iframe_upload_image').one('load', function(e)
    {
      // Ocultar mensaje "cargando"
      Admin.showLoading(false);
      // Habilitar el file input
      $('#image_file').removeAttr('disabled');

      $('#frm_image').trigger('reset');

      if( this.contentWindow.UploadResult == undefined ){
        // El script PHP chingo a su madre!
        alert('Ocurrio un error al procesar el envio de imagen.');
      } else if(this.contentWindow.UploadResult.error) {
        // Ocurrio un error al copiar la imagen
        alert(this.contentWindow.UploadResult.error );
      } else {
        // Cambiar el src de la imagen para cargar la nueva
        $('#noticia_image').attr('src', '../' + IMG_PATH + '/' + NOTICIA_ID
          + '.jpg?v=' + Math.random());
      }

      // Modificar el src del iframe para evitar re-envio si refrescan el navegador
      this.src = 'about:blank';
    });

    // Enviar formulario de imagen y deshabilitar el input file mientras se realiza
    // el envio.
    $('#frm_image').trigger('submit');
    $('#image_file').attr('disabled', 'disabled');
  });

  /*
   * Botón para guardar la noticia
   */
  $('#btn_save').on('click', function(e)
  {
    // Guardar los datos de los editores TinyMCE en los textarea
    tinyMCE.editors['contenido'].save();
    tinyMCE.editors['contenido_en'].save();
    
    // Enviar datos con ajax
    $.ajax('noticias/actions.php?action=save',{
      data: $('#frm_noticia').serialize(),
      dataType: 'json',
      type: 'post',

      beforeSend: function(jqXHR, Settings)
      {
        // Deshabilitar los controles de envio de datos
        $('#btn_save, #btn_publish').attr('disabled', 'disabled');
      },
      complete: function(jqXHR, text_status)
      {
        // Habilitar el boton de guardar
        $('#btn_save').removeAttr('disabled');
      },
      error: function(jqXHR, text_status, error_thrown)
      {
        alert('Ocurrio un error al procesar el envio de datos.')
      },
      success: function(Result, text_status, jqXHR)
      {
        // El boton de publicar solo se habilita si se guardó bien.
        $('#btn_publish').removeAttr('disabled');

        if(!Result.error){
          alert(Result.message);
        } else {
          alert('Error: ' + Result.message);
        }
        
      }
    });
  });

  /**
   * Botón para publicar la noticia
   */
  $('#btn_publish').on('click', function(e)
  {
    $.ajax('noticias/actions.php?action=publish',{
      data: {noticia_id: NOTICIA_ID},
      dataType: 'json',
      type: 'post',

      beforeSend: function(jqXHR, Settings)
      {
        // Deshabilitar los controles de envio de datos
        $('#btn_save, #btn_publish').attr('disabled', 'disabled');
      },
      complete: function(jqXHR, text_status)
      {
        // Habilitar el boton de guardar
        $('#btn_save').removeAttr('disabled');
      },
      error: function(jqXHR, text_status, error_thrown)
      {
        alert('Ocurrio un error al procesar el envio de datos.')
      },
      success: function(Result, text_status, jqXHR)
      {
        // El boton de publicar solo se habilita si se guardó bien.
        $('#btn_publish').removeAttr('disabled');

        if(!Result.error){
          // Una vez publicada la noticia, el boton de publicar ya no es necesario.
          $('#btn_publish').remove();
          alert(Result.message);
        } else {
          alert('Error: ' + Result.message);
        }
      }
    });
  });
});
